
#ifndef _TRUELOVECLIENT_H_
#define _TRUELOVECLIENT_H_

#include <QString>
#include <QList>
#include <QXmlStreamReader>

class TrueLoveClient
{

public:
	TrueLoveClient(); 
	TrueLoveClient(QString pNom, QString pPrenom, int pAge, QString pAdress, QString pEmail, 
			QList<QString> pHobbies, QList<QString> pObjectifs, QString pSexeRecherche,
			int pDiffAge, int pApparence, int pCharme, int pHumour, int pConversation,
			int pIntelligence, int pGentillesse, QString pUrlPhoto, QString sexe);
	~TrueLoveClient();

	// Getters
	int GetId() { return id; }
	QString GetNom() { return nom; }
	QString GetPrenom() { return prenom; }
	int GetAge() { return age; }
	QString GetAdress() { return adress; }
	QString GetEmail() { return email; }
	QList<QString> GetHobbies() { return hobbies; }
	QList<QString> GetObjectifs() { return objectifs; }
	QString GetSexeRecherche() { return sexeRecherche; }
	int GetDiffAge() { return diffAge; }
	int GetApparence() { return apparence; }
	int GetCharme() { return charme; }
	int GetHumour() { return humour; }
	int GetConversation() { return conversation; }
	int GetIntelligence() { return intelligence; }
	int GetGentillesse() { return gentillesse; }
	QString GetUrlPhoto() { return urlPhoto; }
	QString GetSexe() { return sexe; }

	// Setters, auto-generated with vim!
	void SetId(int pId) { id = pId; }
	void SetNom(QString  p_nom) { nom = p_nom; }
	void SetPrenom(QString  p_prenom) { prenom = p_prenom; }
	void SetAge(int p_age) { age = p_age; }
	void SetAdress(QString  p_adress) { adress = p_adress; }
	void SetEmail(QString  p_email) { email = p_email; }
	void SetHobbies(QList<QString>  p_hobbies) { hobbies = p_hobbies; }
	void SetObjectifs(QList<QString>  p_objectifs) { objectifs = p_objectifs; }
	void SetSexeRecherche(QString pSexeRecherche) { sexeRecherche = pSexeRecherche; }
	void SetDiffAge(int p_diffAge) { diffAge = p_diffAge; }
	void SetApparence(int p_apparence) { apparence = p_apparence; }
	void SetCharme(int p_charme) { charme = p_charme; }
	void SetHumour(int p_humour) { humour = p_humour; }
	void SetConversation(int  p_conversation) { conversation = p_conversation; }
	void SetIntelligence(int  p_intelligence) { intelligence = p_intelligence; }
	void SetGentillesse(int  p_gentillesse) { gentillesse = p_gentillesse; }
	void SetUrlPhoto(QString  url) { urlPhoto = url; }
	void SetSexe(QString pSexe) { sexe = pSexe; }

	// Useful/Other functions
	static TrueLoveClient FindClientById(QList<TrueLoveClient> list, int id);
	static QList<TrueLoveClient> GetClients();			// Search for clients in clients.xml
	static TrueLoveClient ParseClient(QXmlStreamReader& xml);	// Get a client object from XML file
	void AddHobby(QString hobby) { hobbies.append(hobby); }		// Add an hobby
	void AddObjectif(QString obj) { objectifs.append(obj); }	// Add an objectif
	void printClient();						// StdOut print

private:
	int id;
	QString nom;
	QString prenom;
	int age;
	QString adress;
	QString email;
	QList<QString> hobbies;
	QList<QString> objectifs;
	QString sexeRecherche;
	int diffAge;
	int apparence;
	int charme;
	int humour;
	int conversation;
	int intelligence;
	int gentillesse;
	QString urlPhoto;
	QString sexe;
};

#endif

